Umiejętność przewidywania zachowań spółek giełdowych oraz identyfikacji spadków i wzrostów jest kluczową kompetencją współczesnych algorytmów działających na giełdzie. Szeroka gama narzędzi wspomaga maklerów w podejmowaniu decyzji inwestycyjnych. W tej dziedzinie niezwykle użyteczne okazują się sieci neuronowe, które są szeroko wykorzystywane do prognozowania cen akcji na giełdzie.
W ramach badania postanowiono zbadać działanie rekurencyjnych sieci neuronowych (LSTM) na danych dotyczących notowań giełdowych spółki Microsoft od 1 stycznia 2010 roku do 1 stycznia 2024 roku. Zbiór treningowy stanowi 80% danych, natomiast działanie modelu jest testowane na ostatnich 20% danych.
Modele LSTM charakteryzują się dużą liczbą parametrów, których właściwy dobór ma istotny wpływ na uzyskiwane wyniki predykcji. W przeprowadzonym badaniu analizowano wpływ pięciu różnych parametrów, testując dla każdego z nich cztery różne wartości.
Sprawdzane parametry to:
Funkcja aktywacji - mechanizm w
sieciach neuronowych decydujący o tym, które informacje zostaną
przekazane do kolejnych warstw, a które zostaną zignorowane lub
zapomniane.
Badane wartości: f.liniowa, f.sigmoidalna, f.ReLU, f.tangensa hiberbolicznego (tanh)
Rozmiar partii - liczba próbek,
które są przetwarzane przez model w jednym przebiegu podczas uczenia.
Wielkość partii znacząco wpływa na aktualizacje wag w trakcie
treningu.
Badane wartości: 16, 32, 64, 128
Optymalizator - algorytm działający
w celu optymalizacji wag sieci, aby minimalizować błąd predykcji.
Badane wartości: Adam, RMSprop, SGD, Adagrad
Liczba wartstw - liczba poziomów,
przez które przechodzą dane w trakcie prztwarzania. Im więcej takich
warstw, tym głębsze są sieci.
Badane wartości: 2, 3, 4, 5
Liczba neuronów - ilość neuronów w
pojedynczej warstwie. W neuronie przetwarzane są informacje sieci za
pomocą wybranych funkcji aktywacyjnych i przekazywane dalej.
Badane wartości: 50, 100, 150, 200
W ostatnich latach znaczną popularność zyskały zaawansowane metody sztucznej inteligencji, w tym sieci neuronowe typu Long Short-Term Memory (LSTM). Technologie te znajdują zastosowanie w prognozowaniu przyszłych cen akcji, które są uzależnione od licznych czynników zewnętrznych. W literaturze przedmiotu dostępnych jest wiele badań dotyczących wykorzystania sieci LSTM do predykcji cen akcji, ze szczególnym uwzględnieniem spółki Microsoft.
W artykule zatytułowanym „Analysis and Forecast of Stock Price Based on LSTM Algorithm” omówiono wykorzystanie modelu predykcyjnyjnego LSTM do prognozowania cen zamknięcia akcji firmy Microsoft. Wyniki analizy wskazują, iż model LSTM wykazuje wysoka skuteczność prognozowania, uzyskując wartość błędu RMSE o 24,43% niższą w porównaniu do regresji grzbietowej oraz 16,69% niższą w stosunku do klasycznej sieci neuronowej (Liu, 2021).
Podobnie, w publikacji “Research on Microsoft Stock Price Prediction Based on Various Models” skupiono się na analizie zastosowania różnych modeli predykcyjnych: regresji liniowej, ARIMA oraz LSTM w prognozowaniu cen akcji firmy Microsoft. Badanie obejmowało dane z okresu od kwietnia 2015 roku do kwietnia 2021 roku. Najlepsze rezultaty uzyskano w przypadku modelu LSTM, który osiągnął znacznie niższą wartość błędu RMSE w porównaniu do regresji liniowej oraz ARIMA. Podkreślono, że zdolność modelu LSTM do uchwycenia skomplikowanych, nieliniowych wzorców w danych czyni go wyjątkowo skutecznym narzędziem w analizie szeregów czasowych (Fu, 2024).
Z kolei w pracy “Apple, Microsoft, and Amazon stock price prediction based on ARIMA and LSTM” przeprowadzono analizę porównawczą modeli ARIMA oraz LSTM w kontekście prognozowania cen akcji trzech wiodących spółek technologicznych: Apple, Microsoft oraz Amazon. Wyniki badania wskazują, iż model ARIMA osiąga wyższą dokładność prognoz w porównaniu do modelu LSTM, co zostało ocenione za pomocą wskaźników RMSE oraz \(\small R^2\). Zauważono jednak, że ograniczenia badania obejmowały pominięcie zewnętrznych czynników wpływających na ceny akcji oraz uproszczone podejście do optymalizacji modelu LSTM (Xia, 2024).
Do predykcji cen firmy Microsoft zdecydowano się na wybór modelu LSTM (ang. Long Short-Term Memory), ponieważ jest on szczególnie przydatny w modelowaniu danych sekwencyjnych, takich jak szeregi czasowe, do których należą odczyty cen zamknięcia na giełdzie.
Przed zastosowaniem wspomnianego modelu dane zostały poddane normalizacji do zakresu od 0 do 1, zgodnie z poniższym wzorem:
Dodatkowo, dane wymagały podziału na sekwencje oraz odpowiadające im wartości docelowe. Na przykład, dla zbioru [1,2,3,4,5] tworzone są dwa podzbiory [1,2,3] oraz [2,3,4], którym odpowiadają etykiety: [4] i [5].
Firma Microsoft została wybrana do badania ze względu na jej dużą popularność, o czym świadczy przynależność do tzw. Wielkiej Piątki. Wiąże się to z szerokim dostępem do publikacji dotyczących tej spółki, co ułatwia porównanie wyników z wcześniejszymi badaniami.
Na wykresie przedstawiono dane wykorzystane w badaniu. Czerwona linia wyznacza granicę 80% danych, oznaczając podział na zbiór treningowy (po lewej stronie linii) oraz zbiór testowy (po prawej stronie).
W celu oceny dokładności prognozy oraz analizy wpływu zmian parametrów obliczono nastepujące miary jakości modelu:
błąd walidacyjny określający
różnicę między wartościami rzeczywistymi a przewidywanymi przez model w
procesie walidacji
średni błąd kwadratowy (RMSE)
mierzy średnią różnicę między wartościami rzeczywistymi a
prognozowanymi. Im wartość \(\scriptsize
RMSE\) jest bliższa 0, tym dokładniejsza jest prognoza modelu,
ponieważ oznacza to mniejsze błędy przewidywań. Wyznaczany jest zgodnie
z poniższym wzorem:
\[ RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2} \]
współczynnik determinacji\(\scriptsize R^2\) określa, w jakim stopniu
zmienność zmiennej zależnej (\(\small
y\)) jest wyjaśniona przez model. Współczynnik ten przyjmuje
wartości z przedziału \(\small [0,1]\),
gdzie wynik bliski 1 (100%) oznacza, że model bardzo dobrze dopasowuje
się do danych\[
R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i
- \bar{y})^2}
\]
W tabelach podano średnie \(\scriptsize RMSE\) i \(\scriptsize R^2\) ze wszystkich prób dla danych parametrów.
Łącznie przeprowadzono 100 prognozowań cen akcji, 5 razy dla każdego zestawu parametrów. Badano wpływ pięciu różnych parametrów. W sprawozdaniu przedstawiony zostanie zestaw wykresów dla jednej z pięciu prób przeprowadzonych dla wszystkich parametrów w celu zaoszczędzenia miejsca oraz długości sprawozdania. Dostęp do wykresów dla wszystkich prób przeprowadzonych w ramach badania znajduje się w folderze ‘plots’, dołączonym do sprawozdania.
Na poniższych wykresach zaprezentowano wyniki dla czterech analizowanych funkcji aktywacji.
Pozostałe parametry pozostają stałe:
rozmiar partii = 16
optymalizator = Adam
liczba warstw = 3
liczba neuronów = 20
Funkcja liniowa
\[h(x) = x\]
Funkcja ReLU
\[ h(x) = \begin{cases} x, & x \geq 0 \\ 0, & x \leq 0 \end{cases} \]
Funkcja sigmoidalna
\[ h(x) = \frac{1}{(1+e^{-x})}-1 \]
Funkcja tangens hiperboliczny
\[ h(x) = \frac{2}{(1+e^{-2x})}-1 \]
Wartości obliczono jako średnia dla wszystkich pięciu prób
Najniższy błąd walidacyjny uzyskano przy użyciu funkcji liniowej, który wyniósł około 0.00085, co idzie w parze z najniższym RMSE oraz bardzo wysokim współczynnikiem determinacji (R² ≈ 0.93) wskazującym na bardzo dobre dopasowanie modelu do danych. Dla funkcji ReLU uzyskano błąd walidacyjny rzędu 0.00193, RMSE około 16.03 oraz R² na poziomie 0.83. Choć wyniki te są nieco gorsze niż przy zastosowaniu funkcji liniowej, nadal wskazują na satysfakcjonujące dopasowanie modelu do danych. Warto wspomnieć, iż dla dwóch prób, których wyniki znajdują się w folderze plots, funkcja ReLU zaprognozowała same zera. Najsłabsze rezultaty osiągnięto przy użyciu funkcji sigmoidalnej, dla której błąd walidacyjny wyniósł około 0.00863, a współczynnik R² osiągnął wartość jedynie około 0.24, co wskazuje na znaczące niedopasowanie modelu. Podobne, choć nieco lepsze wyniki uzyskano dla funkcji tanh, gdzie błąd walidacyjny wyniósł około 0.00536. W przypadku obu tych funkcji obserwuje się tendencję do niedoszacowania modelu, szczególnie w okresach, gdy spółka Microsoft osiąga wyższe ceny na giełdzie.
Na poniższych wykresach zaprezentowano wyniki dla zwiększającej się liczby próbek w partii.
Pozostałe parametry pozostają stałe:
funkcja aktywacji =
f.liniowa
optymalizator = Adam
liczba warstw = 3
liczba neuronów = 20
16 próbek
32 próbki
64 próbki
128 próbek
Wartości obliczono jako średnia dla wszystkich pięciu prób
Różnice wystepujące pomiędzy wynikami dla badanych rozmiarów partii nie wydają się znaczące. Błędy walidacji są do siebie zbliżone, choć w przypadku partii o wielkości 16 próbek mozna dostrzec nieznacznie lepsze wyniki w odniesieniu do pozostałych wielkości. W przypadku rozmiarów partii 32 i 64 obserwuje się wzrost błędu walidacyjnego do około 0.0013, zwiększenie RMSE, odpowiednio około 13.36 oraz 12.94, a także spadek wartości R². Zwiększenie rozmiaru partii do 128 skutkuje częściową poprawą wyników w porównaniu z wartościami dla partii 32 oraz 64 próbek, jednak nadal są one gorsze niż przy partii 16 próbek.
Poniżej zaprezentowano wykresy dla różnych optymalizatorów w zbudowanym modelu.
Pozostałe parametry pozostają stałe:
funkcja aktywacji =
f.liniowa
rozmiar partii = 16
liczba warstw = 3
liczba neuronów = 20
Adagrad
Adagrad automatycznie dostosowuje krok optymalizacji dla każdego parametru w oparciu o historię gradientów. Wagi, które często mają duże gradienty, otrzymują mniejsze kroki optymalizacji. Parametry rzadko aktualizowane mają większe kroki optymalizacji.
Dla optymalizatora Adagrad można zauważyć, że błąd walidacyjny zmierza do błędu trenowania. Wykres błędu różni się zdecydowanie od wykresów w innych przypadkach. Nie mamy tutaj takich wahań, ale dla początkowych epok wartości błędu są dość wysokie. Prognoza dość mocno się różni od rzeczywistych wartości.
Adam
Adam utrzymuje zbiór wykładniczo malejących średnich poprzednich gradientów i kwadratowych gradientów. Oblicza pierwszy i drugi moment gradientów, które są odpowiednio oszacowaniami średniej i niecentrowanej wariancji gradientów. Te momenty są następnie wykorzystywane do aktualizacji parametrów modelu.
Dla optymalizatora Adam błąd już zaczyna się wahać. Jednak na przestrzeni wszystkich epok błąd jest bardzo niski. Powyżej 20 epok jest on niższy niż 0.001. Tutaj prognoza jest praktycznie identyczna jak rzeczywiste wartości, stąd też takie niskie wartości błędu.
RMSprop
RMSprop to ulepszenie SGD, które dynamicznie dostosowuje krok optymalizacji w zależności od gradientów. Skaluje krok optymalizacji w zależności od wielkości gradientu – mniejsze kroki dla dużych gradientów i większe dla małych gradientów.
Dla optymalizatora RMSprop również obserwuje się znaczne wahania błędu, jednak wartości te są bardzo niskie, zwłaszcza w porównaniu do optymalizatora Adagrad. Niemniej jednak, błąd nie osiąga tak niskich wartości jak w przypadku optymalizatora Adam. Mimo to, dopasowanie prognozy jest również bardzo dobre.
SGD
SGD aktualizuje parametry w małych partiach danych treningowych, dzięki czemu jest wydajny obliczeniowo. Dostosowuje parametry w kierunku najbardziej stromego spadku funkcji straty, stopniowo zbiegając się w kierunku minimum.
Dla optymalizatora SGD ponownie jest sytuacja taka, jak dla opt. Adagrad. Wartości błędu na przestrzeni epok są bardzo wysokie. Maleje zdecydowanie wolniej niż w innych przypadkach. Wypada on tutaj najgorzej. Możemy to też zobaczyć po prognozie cen, że uzyskane wyniki znacząco się różnią od rzeczywistych.
Wartości obliczono jako średnia dla wszystkich pięciu prób
Optymalizator Adam wykazuje najlepsze wyniki pod względem \(\scriptsize RMSE\) i \(\scriptsize R^2\). Niskie wartości \(\scriptsize RMSE\) wskazują na dobre dopasowanie modelu do danych, a wysokie \(\scriptsize R^2\) sugeruje, że model wyjaśnia prawie całą zmienność danych. Dla RMSprop wartości \(\scriptsize RMSE\) są wyższe niż w przypadku Adama, \(\scriptsize R^2\) jest nadal wysokie, co oznacza, że model jest dość dobrze dopasowany do danych. W przypadku Adagrad zarówno \(\scriptsize RMSE\), jak i \(\scriptsize R^2\) zdecydowanie gorzej wypadają w porównaniu do dwóch poprzednich optymalizatorów. Natomiast najgorzej wypada SGD. \(\scriptsize RMSE\) jest bardzo wysokie, a \(\scriptsize R^2\) ujemne, co oznacza, że model jest całkowicie niedopasowany do danych. Potwierdzają to również prognozy, które są dalekie od rzeczywistych.
Zdecydowanie najlepiej wypada optymalizator Adam. Daje on najniższe wartości błędu i prognoza jest najlepiej dopasowana do rzeczywistych wartości. Najgorzej natomiast wypada optymalizator SGD. W odróżnieniu od pozostałych nie wykorzystuje on adaptacyjnego tempa uczenia.
Poniżej zaprezentowano wykresy dla zwiększającej się liczby warstw w zbudowanym modelu.
Pozostałe parametry pozostają stałe:
funkcja aktywacji =
f.liniowa
rozmiar partii = 16
optymalizator = Adam
liczba neuronów = 20
2 warstwy
3 warstwy
4 warstwy
5 warstw
Wartości obliczono jako średnia dla wszystkich pięciu prób
Na wykresach można zaobserwować, że wraz ze wzrostem liczby warstw dokładność prognozy ulega znacznemu pogorszeniu. Trend ten potwierdzają zarówno spadek współczynnika determinacji \(\scriptsize R^2\), jak i wzrost wartości \(\scriptsize RMSE\). Dla modelu z 2 warstwami wartość \(\scriptsize R^2\) wynosi około 0.97, co oznacza, że model wyjaśnia niemal 97% zmienności danych, a \(\scriptsize RMSE\) osiąga wartość około 6.82. Natomiast dla modelu z pięcioma warstwami \(\scriptsize R^2\) spada do około 0.63, z kolei wartość \(\scriptsize RMSE\) wzrasta do około 23.75, co wskazuje na istotne pogorszenie dopasowania modelu. Wyniki te sugerują, że zwiększanie liczby warstw może prowadzić do problemów z optymalizacją modelu, skutkując znacznym obniżeniem jego zdolności predykcyjnej.
Poniżej zaprezentowano wykresy dla zwiększającej się liczby neuronów w warstwach w zbudowanym modelu.
Pozostałe parametry pozostają stałe:
funkcja aktywacji =
f.liniowa
rozmiar partii = 16
optymalizator = Adam
liczba warstw = 2
50 neuronów
100 neuronów
150 neuronów
200 neuronów
Wartości obliczono jako średnia dla wszystkich pięciu prób
Wyniki zamieszczone w powyższej tabeli wskazują, że błąd walidacyjny dla badanej liczby neuronów utrzymuje się w przedziale od około 0.00028 do 0.00032, przy czym najniższa wartość została uzyskana dla modelu z 200 neuronami. Wartości te są bardzo niskie oraz nie wykazują dużych wahań między analizowanymi wielkościami parametrów. Wraz ze wzrostem liczby neuronów obserwuje się niewielkie, choć zauważalne zmniejszenie wartości \(\scriptsize RMSE\) oraz nieznaczny wzrost współczynnika \(\scriptsize R^2\), co świadczy o poprawie dopasowania modelu do danych. \(\scriptsize RMSE\) oscyluje w okolicach 6, natomiast współczynnik determinacji pozostaje na bardzo wysokim poziomie, wynosząc około 0.97, co oznacza, że model wyjaśnia niemal 97% zmienności danych.
Przeprowadzona analiza umożliwiła zbadanie wpływu kluczowych parametrów modelu LSTM na skuteczność predykcji cen akcji spółki Microsoft. Badanie dotyczyło wpływu wielkości następujących parametrów: funkcji aktywacji, rozmiaru partii, liczby warstw, liczby neuronów oraz wyboru optymalizatora. Uzyskane wyniki wskazały na występowanie istotnej zależności pomiędzy doborem parametrów a jakością prognoz, co zostało szczegółowo omówione poniżej:
Funkcja aktywacji: funkcje liniowa
oraz ReLU okazały się najbardziej skuteczne w kontekście prognozowania,
wykazując mniejsze błędy walidacji w porównaniu z innymi funkcjami.
Pozostałe z analizowanych funkcji tj. funkcja tangensa hiperbolicznego
oraz funkcja sigmoidalna cechują się słabym dopasowaniem.
Rozmiar partii: w przypadku
rozmiarów partii obserwowano zbliżone wartości błędów walidacji,
jednakże w przypadku rozmiaru partii 16 próbek uzyskane wyniki były
nieznacznie większe w porównaniu do pozostałych wielkości.
Optymalizator: optymalizator Adam
wykazał się najniższymi wartościami błędów walidacyjnych oraz najwyższym
stopniem dopasowania wartości do danych rzeczywistych. Najgorsze wyniki
osiągnął optymalizator SGD, gdyż w porównaniu do pozostałych nie stosuje
adaptacyjnego tempa uczenia.
Liczba warstw: zwiększenie liczby
warstw prowadziło do pogorszenia predykcji i występowania większych
błędów walidacji.
Liczba neuronów: we wszystkich
analizowanych przypadkach występowały znaczące wahania błędów
walidacyjnych, jednakże w przypadku liczby neuronów wynoszącej 200
zaobserwowano niższe wartości tego błędu.
Ponad samą prognozę oraz wyznaczenie błędów predykcji postanowiono porównać wyniki dopasowania naszego modelu z innymi popularnymi rozwiązaniami stosowanymi na świecie.
Nasze wyniki zostały porównane z wynikami czterech innych rozwiązań, biorąc pod uwagę wartość błędu \(\scriptsize RMSE\) oraz współczynnik determinacji \(\scriptsize R^2\).
Wybrane metody do porówania:
Model regresji liniowej
KNN
Model ARIMA
Średnia ruchoma
W zestawieniu uwzględniono wartości \(\scriptsize RMSE\) oraz \(\scriptsize R^2\) dla najlepszego modelu uzyskanego w naszych badaniach. Najlepszy wynik osiągnięto przy następujących wartościach parametrów:
funkcja aktywacji =
f.liniowa
rozmiar partii = 16
optymalizator = Adam
liczba warstw = 2
liczba neuronów = 200
Regresja liniowa stanowi jedną z najczęściej stosowanych metod analizy predykcyjnej. Metoda ta opiera się na relacjach liniowych pomiędzy zmienną zależną (wyjaśnianą) a jedną lub większą liczbą zmiennych niezależnych (predyktorów), w celu prognozowania wartości przyszłych zmiennej przewidywanej. Metoda polega na znalezieniu takiej prostej regresji, która minimalizuje sumę kwadratów błędów pomiędzy wartościami rzeczywistymi a prognozowanymi. Dzięki temu możliwe jest precyzyjne oszacowanie parametrów modelu.
W przedstawionej implementacji modelu regresji liniowej parametry podlegają optymalizacji z wykorzystaniem metody gradientu prostego (ang. gradient descent). Algorytm iteracyjnie modyfikuje wartości wag oraz wyrazu wolnego, zmierzając do minimalizacji funkcji kosztu. Przyjęto współczynnik uczenia równy 0.01 oraz liczbę iteracji na poziomie 100 000. Podział danych na zbiór treningowy i testowy został przeprowadzony w sposób analogiczny do zastosowanego w modelu LSTM.
Porównanie miar oceny jakości modeli LSTM oraz regresji
liniowej
Z porównania uzyskanych miar oceny jakości modeli wynika, że model LSTM osiągnął owiele niższą wartość \(\scriptsize RMSE\) (6.823353) w stosunku do regresji liniowej (121.94). Świadczy to o lepszej dokładności prognoz modelu LSTM, co może być efektem jego zdolności do uchwycenia skomplikowanych zależności w danych czasowych. Regresja liniowa jest zbyt trywialnym rozwiązanuiem do zastosowania w przypadku cen akcji.
K-Nearest Neighbors (KNN) to metoda uczenia maszynowego stosowana do analizy danych i prognozowania. Jest to algorytm leniwego uczenia (lazy learning), który dokonuje predykcji na podstawie podobieństwa do najbliższych sąsiadów w zbiorze treningowym.
W kontekście prognozowania szeregów czasowych, KNN nie zakłada żadnej konkretnej struktury modelu, jak ma to miejsce w klasycznych metodach statystycznych, takich jak ARIMA. Zamiast tego, dla danej wartości prognozowanej, algorytm znajduje najbardziej podobne punkty w przeszłości i wykorzystuje ich wartości do oszacowania przyszłych zmian.
Porównanie miar oceny jakości modeli LSTM oraz
KNN
Analiza uzyskanych wyników wskazuje, że model LSTM znacząco przewyższa KNN pod względem jakości prognozowania cen zamknięcia akcji. Niższa wartość błędu \(\scriptsize RMSE\) wynosząca 6.823353 sugeruje, że prognozy generowane przez model LSTM są średnio bliższe rzeczywistym wartościom w porównaniu do rezultatów uzyskanych z KNN. Wyniki te są zgodne z oczekiwaniami, ponieważ model LSTM jest w stanie rozpoznawać oraz uczyć się długoterminowych zależności, co jest szczególnie przydatne w kontekście prognozowania szeregów czasowych. Jego architektura pozwala na uchwycenie skomplikowanych wzorców w danych, dzięki czemu lepiej odwzorowuje dynamiczne zmiany na rynkach finansowych.
ARIMA jest jedną z najpopularniejszych metod wykorzystywanych w modelowaniu szeregów czasowych. Akronim ten pochodzi od angielskiego terminu Autoregressive Integrated Moving Average model, co w języku polskim tłumaczy się jako autoregresyjny zintegrowany model średniej ruchomej. Skrót ARIMA odnosi się do trzech kluczowych komponentów modelu:
procesu autoregresyjnego AR (ang. Autoregressive):
model autoregresyjny opisuje zależność wartości szeregu czasowego od
jego wcześniejszych wartości. Parametr p określa liczbę
opóźnionych wartości branych pod uwagę
stopnia integracji I (Integrated):
część “zintegrowana” oznacza różnicowanie szeregu czasowego w celu
usunięcia trendu lub uzyskania stacjonarności. Parametr d
określa liczbę takich różnicowań
procesu średniej ruchomej MA (ang. Moving Average):
model średniej ruchomej opisuje zależność wartości szeregu od błędów z
poprzednich kroków. Parametr q określa liczbę takich błędów
branych pod uwagę
W przedstawionej implementacji modelu ARIMA przyjęto parametr rzędu autoregresji p = 5, co odpowiada uwzględnieniu pięciu opóźnionych obserwacji oraz parametr rzędu średniej ruchomej q = 5 oznaczający przyjęcie pięciu opóźnionych wartości reszt. Podział danych na zbiór treningowy i testowy został przeprowadzony w sposób analogiczny do zastosowanego w modelu LSTM. Przed przystąpieniem do modelowania, dane zostały poddane różnicowaniu w celu osiągnięcia stacjonarności.
Porównanie miar oceny jakości modeli LSTM oraz
ARIMA
Analiza wyników wykazała, że model ARIMA charakteryzuje się niższą wartością błędu \(\scriptsize RMSE\) (4.97) w porównaniu do modelu LSTM (6.823353), co świadczy o wyższej precyzji prognoz generowanych przez ten model. Ponadto, wyższy współczynnik \(\scriptsize R^2\) dla modelu ARIMA, wynoszący 0.9834908, wskazuje na jego lepsze dopasowanie do danych historycznych w porównaniu do modelu LSTM, który uzyskał wartość \(\scriptsize R^2\) = 0.9693442. Uzyskane wyniki wskazują, że w analizowanym przypadku model ARIMA wykazuje wyższą trafność prognozowania cen zamknięcia akcji. Należy również podkreślić, że skuteczność modelu LSTM w dużej mierze zależy od odpowiedniego doboru parametrów oraz architektury sieci neuronowej, co może utrudniać jego optymalizację i prowadzić do problemów z przetrenowaniem.
Wyniki analizy są zbieżne z wnioskami z artykułu „Apple, Microsoft, and Amazon stock price prediction based on ARIMA and LSTM”, w którym porównano skuteczność modeli LSTM i ARIMA w prognozowaniu cen akcji. Autorzy publikacji wskazują na uzyskanie lepszych wartości miar \(\scriptsize RMSE\) oraz \(\scriptsize R^2\) dla modelu ARIMA. Ponadto podkreślono, że choć ARIMA osiągnął lepsze rezultaty dla analizowanych spółek, jego skuteczność może być ograniczona w wysokiej zmienności rynkowej lub w przypadku wystąpienia nieoczekiwanych zdarzeń, ze względu na podstawowe założenia modelu dotyczące liniowości i stacjonarności danych.
Średnia ruchoma (ang. Moving Average, MA) to metoda statystyczna wykorzystywana do wygładzania szeregów czasowych poprzez obliczanie średniej arytmetycznej dla określonej liczby kolejnych obserwacji. Polega ona na przesuwaniu okna czasowego o stałej długości wzdłuż szeregu danych, przy czym dla każdego położenia okna wyznaczana jest średnia wartość obserwacji w nim zawartych. Dzięki temu metoda skutecznie redukuje krótkoterminowe fluktuacje, umożliwiając dokładniejsze wychwycenie długoterminowych trendów w danych.
W przedstawionej implementacji przyjęto długość okna równą 10 dni. Podział danych na zbiór treningowy i testowy został przeprowadzony w sposób analogiczny do zastosowanego w modelu LSTM.
Porównanie miar oceny jakości modeli LSTM oraz średniej
ruchomej
Na podstawie wyników przedstawionych w tabeli można stwierdzić, że model LSTM wykazał wyższą skuteczność w prognozowaniu cen zamknięcia akcji w porównaniu do metody średniej ruchomej.Niższa wartość błędu w przypadku LSTM świadczy o jego większej precyzji w prognozowaniu cen,co sugeruje, że model ten lepiej odwzorowuje krótkoterminowe wahania rynkowe niż metoda oparta na średniej ruchomej.
Na poniższych wykresach dokonano wizualizacji wyników dotyczących błędu \(\scriptsize RMSE\) oraz współczynnika determinacji \(\scriptsize R^2\) dla wszystkich omówionych wcześniej metod. Dzięki graficznej prezentacji możliwe jest łatwiejsze porównanie skuteczności poszczególnych modeli oraz wskazanie tych, które wyróżniają się najwyższą dokładnością prognoz.
Wśród zbadanych modeli predykcyjnych model ARIMA osiągnął najlepsze wyniki, charakteryzując się najniższą wartością błędu \(\scriptsize RMSE\). Oznacza to, że model ten najdokładniej odwzorowuje zależności w danych oraz generuje najbardziej precyzyjne prognozy. Model LSTM również uzyskał niski wynik dla \(\scriptsize RMSE\), jednak nadal wyższy niż ARIMA. Może to wynikać z nieodpowiedniego doboru parametrów modelu bądź niewystarczającej liczby danych treningowych. Regresja liniowa oraz KNN wypadły najgorzej , co może wynikać z ich ograniczonej zdolności do modelowania nieliniowych zależności w danych. Obiecująca tehcniką również wydaje się być MA, gdzie wynik \(\scriptsize RMSE\) wyniósło około 17.7.
Fu, Y. (2024). Research on Microsoft Stock Price Prediction Based on Various Models. Proceedings of the 1st International Conference on Data Science and Engineering, 11–16
Liu, Y. (2021). Analysis and forecast of stock price based on LSTM algorithm. 2021 IEEE International Conference on Computer Science, Electronic Information Engineering and Intelligent Control Technology (CEI), Fuzhou, China, 76-79
Wall, K. (2022). Negative R2: Where did you go wrong. Towards Data Science, https://towardsdatascience.com/negative-r2-where-did-you-go-wrong-9d4f2aa84cfb
Xia, X. (2024). Apple, Microsoft, and Amazon stock price prediction based on ARIMA and LSTM. Applied and Computational Engineering, 53(1), 181–189